package com.wnxy.f_confirm;

import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;

@Component
public class ConfirmProducer {

    @Autowired
    private RabbitTemplate rabbitTemplate;
    @Autowired
    private RabbitConfirm rabbitConfirm;

    // @PostConstruct 表示在创建对象之后执行的方法，一般用来执行初始化操作
    @PostConstruct
    public void init(){
        rabbitTemplate.setConfirmCallback(rabbitConfirm);
        // 消息是否从交换机路由到队列的确认
        // true 表示消息无法路由时会返回给生产者
        // false 消息无法路由直接丢弃, 不返回消息给生产者
        rabbitTemplate.setMandatory(true);
        rabbitTemplate.setReturnCallback(rabbitConfirm);
    }
    public void sendMsg(){
        // --->发送消息
        rabbitTemplate.convertAndSend("exchange-confirm","confirm.xx","确认消息");
    }
}
